﻿//------------------------------------------------------------------------------
// 创建标识: Copyright (C) 2010 Socansoft.com 版权所有
// 创建描述: SocanCode代码生成器 V4.3.3.6 自动创建于 2010/4/7 16:16:45
//
// 功能描述: 
//
// 修改标识: 
// 修改描述: 
//------------------------------------------------------------------------------

using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.Caching;
using System.Text.RegularExpressions;

namespace IBSBLL
{
    /// <summary>
    /// 业务逻辑类 TimeTable
    /// </summary>
    public class TimeTable
    {
        private readonly IBSSqlServerDAL.TimeTable dal = new IBSSqlServerDAL.TimeTable();
        public TimeTable()
        { }

        /// <summary>
        /// 增加一条数据
        /// </summary>
        public void Add(IBSModel.TimeTable model)
        {
            CheckModel(model);
            dal.Add(model);
        }

        /// <summary>
        /// 更新一条数据
        /// </summary>
        public void Update(IBSModel.TimeTable model)
        {
            CheckModel(model);
            dal.Update(model);
        }

        /// <summary>
        /// 删除一条数据
        /// </summary>
        public void Delete(int ID)
        {
            CheckConditionArgument(ID);
            dal.Delete(ID);
        }

        /// <summary>
        /// 是否存在该记录
        /// </summary>
        public bool Exists(int ID)
        {
            CheckConditionArgument(ID);
            return dal.Exists(ID);
        }

        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public IBSModel.TimeTable GetModel(int ID)
        {
            CheckConditionArgument(ID);
            return dal.GetModel(ID);
        }

        /// <summary>
        /// 获得泛型数据列表
        /// </summary>
        public List<IBSModel.TimeTable> GetList()
        {
            return dal.GetList();
        }

        /// <summary>
        /// 取得数据行数,不建议直接使用此方法,请根据业务逻辑重写
        /// </summary>
        public int GetCount(string condition)
        {
            return dal.GetCount(condition);
        }

        /// <summary>
        /// 分页获取泛型数据列表,不建议直接使用此方法,请根据业务逻辑重写
        /// </summary>
        public List<IBSModel.TimeTable> GetPageList(int pageSize, int pageIndex, string fldSort, bool fldDir, string condition)
        {
            if (pageSize <= 0)
                throw new Exception("每页数据条数必须大于0。");

            if (pageIndex <= 0)
                throw new Exception("页索引必须大于0。");

            if (string.IsNullOrEmpty(fldSort))
                throw new Exception("排序字段不能为空。如果是默认排序，可以填写主键字段。");

            return dal.GetPageList(pageSize, pageIndex, fldSort, fldDir, condition);
        }

        #region 验证参数的有效性，请在此加入更多业务逻辑的验证

        /// <summary>
        /// 验证实体的有效性
        /// </summary>
        private void CheckModel(IBSModel.TimeTable model)
        {
            if (model == null)
                throw new ArgumentNullException("参数不能为空。");

            if (!Regex.IsMatch(model.OwnLineIBDMID, @"^[\s\w\u4e00-\u9fa5]{1,50}$"))
                throw new ArgumentException("OwnLineIBDMID格式不正确。");
        }

        /// <summary>
        /// 验证条件参数的有效性
        /// </summary>
        private void CheckConditionArgument(int ID)
        {
        }

        #endregion

        #region User Code

        /// <summary>
        /// 得到一个在用时刻表对象实体
        /// </summary>
        public int GetValidModel(int id,string type)
        {
            CheckConditionArgument(id);
            return dal.GetValidModel(id,type);
        }

        #endregion
    }
}